import axios from "axios";
import store from "@/store/index";

axios.interceptors.request.use((config) => {
    // config参数：请求发送时需要的信息对象
    // 常用场景：为部分/所有的请求添加特定的请求头信息（例如有些接口需要做token鉴权的）
    // 在这里添加jwt到请求头中
    config.headers["authorization"] = store.state._token;
    return config;
});

axios.interceptors.response.use((ret) => {

    // 存token
    let _token = ret._token ? ret._token : ""
    store.commit("setToken", _token)
        // ret参数：请求返回的响应的对象
        // 常用场景：将后端返回的数据做简化处理
        // ret中有data/config/status/request等等，里面一般只有data能用上，所以每次都得ret.data.xxx
        // 例如：
        // if(ret.data){
        //     return ret.data;
        // }else{
        //     return ret;
        // }
        // 简化：
        // return ret.data ? ret.data : ret;
        // 再简化（短路）：
    return ret.data || ret;

    // return ret;
});












export default axios;